1.关闭 VM,并且新增 serial port 給 VM 在PVE Host 中用 qm 命令建立 serial port,假設我的 VM ID 是 100
qm set 100 -serial0 socket
2.重新开启 VM,用 dmesg 验证是否有 ttyS 出现
dmesg | grep ttyS
如果出現如下代表有了
[ 3.521757] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
3.接下来配置VM的grub,进入VM的ssh
cd /etc/default/
vim grub
修改grub中的GRUB_CMDLINE_LINUX值
GRUB_CMDLINE_LINUX="quiet console=tty0 console=ttyS0,115200”
4.更新grub
# debian based
update-grub
# redhat based
grub2-mkconfig --output=/boot/grub2/grub.cfg
5.在虚拟机添加
/etc/init.d/ttyS0.conf
并添加如下
# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[12345]
stop on runlevel [!12345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102
6.设置自启动
systemctl enable serial-getty@ttyS0.service
systemctl start serial-getty@ttyS0.service
重启VM,测试xterm,已经可以用